Theorem

Define a partial function from {0,1}\{0,1\}^* to {0,1}\{0,1\}^* as a function not necessarily defined on all its inputs.
Furthermore say that a TM MM computes a partial function ff if for every xx where ff is defined, M(x)=f(x)M(x) = f(x), and for every xx where ff is not defined, MM results into an infinite loop when executing on input xx.
If 𝒮\mathcal{S} is the set of partial functions, define f𝒮f_\mathcal{S} to be the Boolean function that on input α\alpha outputs 11 iff TM MM computes a partial function in 𝒮\mathcal{S}.

Rice's theorem says that for every nontrivial 𝒮\mathcal{S} (not empty nor set of all partial functions computable by some Turing machine), f𝒮f_\mathcal{S} is not computable.

Notes


References

  1. S. Arora, B. Barak. Computational Complexity: A Modern Approach, Cambridge University Press, 2009, p. 35.
  2. http://kilby.stanford.edu/~rvg/154/handouts/Rice.html
  3. https://courses.grainger.illinois.edu/cs373/fa2013/Lectures/lec25.pdf
  4. https://mathworld.wolfram.com/RicesTheorem.html